package com.xhh.nphm.gaoxin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xhh.nphm.gaoxin.entity.GxqTtelGetDealEty;
import com.xhh.nphm.system.domain.EventAddress;
import com.xhh.nphm.system.domain.SensitiveInfo;
import com.xhh.nphm.system.domain.TtelGetDealEty;

import java.util.List;

public interface GxqITelGetDealService extends IService<GxqTtelGetDealEty> {

    /**
     * 查询来电记录草稿列表
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listDraft(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 查询待处理来电记录列表
     *
     * @param userNo 当前登录账号
     * @param carrierType 运营商标识
     * @param ttelGetDealEty 查询条件
     * @return 列表数据
     */
    List<GxqTtelGetDealEty> listWait(String userNo,Integer carrierType,GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 新增 来电记录草稿
     * @param ttelGetDealEty
     * @return
     */
    int insert(GxqTtelGetDealEty ttelGetDealEty, EventAddress eventAddress, SensitiveInfo sensitiveInfo);
    int insert(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 修改 来电记录草稿
     * @param ttelGetDealEty
     * @return
     */
    int update(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 查询我接听的来电列表
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> myGetList(GxqTtelGetDealEty ttelGetDealEty);

    List<GxqTtelGetDealEty> listPending(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 我处理的来电列表
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listHandle(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 坐席办结来电列表
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listFinish(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 已派工单来电列表
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listWork(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 根据 id 可以进行多选删除 和 单个删除
     * @param ids
     * @return
     */
    int deleteByIds(String[] ids);

    /**
     * 根据 pkid 查询 来电记录草稿
     * @param pkId
     * @return
     */
    GxqTtelGetDealEty selectByPkId(Integer pkId);

    /**
     * 根据 fromTelA 查询 来电历史记录
     * @param ttelGetDealEty 封装查询条件
     * @return
     */
    List<GxqTtelGetDealEty> historyLiaison(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 查询待值班长处理列表
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listMtrWait(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 查询值班长退回列表
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listMtrBack(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 查询我办结的来电列表
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> listMyOver(GxqTtelGetDealEty ttelGetDealEty);

    String countHistory(String fromTelA);

    String problem(String loginName);

    String noLike(String fromTelA);

    /**
     * 随机获取20条待处理来电记录
     * @param
     * @return
     */
    List<GxqTtelGetDealEty> getListWait(Integer num);

    /**
     * 查询未获取待处理来电记录条数
     * @param carrierType 运营商标识
     * @return 条数
     */
    Integer countListWait(Integer carrierType);

    /**
     * 未获取待处理来电记录 列表数据
     * @param carrierType 运营商标识
     * @param ttelGetDealEty 查询条件
     * @return 列表数据
     */
    List<GxqTtelGetDealEty> noGetListWait(Integer carrierType,GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 重录件 列表数据
     * @param carrierType 运营商标识
     * @param ttelGetDealEty 查询条件
     * @return 列表数据
     */
    List<GxqTtelGetDealEty> reenterList(Integer carrierType,GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 紧急件 列表数据
     * @param ttelGetDealEty 查询条件
     * @return 列表数据
     */
    List<GxqTtelGetDealEty> urgentList(Integer carrierType,GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 释放获取件 列表数据
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> freedListWaitJson(GxqTtelGetDealEty ttelGetDealEty);

    List<GxqTtelGetDealEty> telGetList(GxqTtelGetDealEty ttelGetDealEty);

    /**
     * 创建工单时，更新电话记录
     * @param telRecord
     * @return
     */
    int whenWFCreateSet(GxqTtelGetDealEty telRecord);

    /**
     * 通过信件id查询信件
     * @param PkId
     * @return
     */
    GxqTtelGetDealEty selectByTelPkId(int PkId);

    /**
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> relevanceRec(GxqTtelGetDealEty ttelGetDealEty);

    /**
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> accSubjectDraw(GxqTtelGetDealEty ttelGetDealEty);

    /**
     *
     * @param ttelGetDealEty
     * @return
     */
    List<GxqTtelGetDealEty> telHistoryByAddress(GxqTtelGetDealEty ttelGetDealEty);
}